#ifndef JUGADOR_H
#define JUGADOR_H

#include "PersonajePacman.h"
#include "Comando.h"
#include "Evento.h"

class Jugador {

private:
	string *nombre, *usuario;
	PersonajePacman *personaje;
	Comando *comando;
	Evento* ultimoEvento;

public:

	Jugador(const std::string& usuario,const std::string& nombre, PersonajePacman *personaje, Comando *comando){
		this->usuario = new string(usuario);
		this->nombre = new string(nombre);
		this->personaje = personaje;
		this->comando = comando ;
		this->ultimoEvento = 0;
	}

	Jugador(const string& usuario,const string& nombre){
		this->usuario = new string(usuario);
		this->nombre = new string(nombre);
		this->personaje = 0 ;
		this->comando = 0 ;
		this->ultimoEvento = 0;
	}

	void setPersonaje(PersonajePacman *personaje){
		this->personaje = personaje;
	}

	PersonajePacman* getPersonaje(){
		return this->personaje;
	}

	void setComando(Comando *comando){
		this->comando = comando ;
	}

	string* getNombre(){
		return this->nombre;
	}

	string* getUsuario(){
		return this->usuario;
	}

	Comando* getComando(){
		return this->comando;
	}

	void setUltimoEvento(Evento *ultimo){
		if(this->ultimoEvento)
			delete this->ultimoEvento;
		this->ultimoEvento = ultimo;
	}

	Evento* getUltimoEvento(){
		return this->ultimoEvento;
	}

	~Jugador(){
		delete this->nombre;
		delete this->usuario;
		delete this->personaje;
		delete this->comando;
		delete this->ultimoEvento;
	}

};


#endif